package entity.object;

import entity.Direction;
import entity.GameEntity;
import entity.Position;
import game.engine.ia.ICleverEntity;
import game.engine.ia.IState;

public class EnemyEntity extends PersoEntity implements ICleverEntity, ICombatEntity
{


	protected IState _state = null;
	protected GameEntity _target = null;
	protected Integer _cptTurn = null;
	protected EnemyType _type = null;

	public EnemyEntity(Integer pId, Position pPosition)
	{
		super( pId, pPosition );
		_direction = Direction.SOUTH;
		_cptTurn = 0;
	}

	@Override
	public IState getState()
	{
		return _state;
	}

	@Override
	public void setState( IState pState )
	{
		_state = pState;

	}

	@Override
	public GameEntity getTarget()
	{
		return _target;
	}

	@Override
	public void setTarget( GameEntity pObjEntity )
	{
		_target = pObjEntity;

	}

	@Override
	public boolean launchClever()
	{
		if ( _cptTurn != 0 )
		{
			_cptTurn--;
			return false;
		}
		_cptTurn = 5;
		return true;
	}

	@Override
	public Integer getAttack()
	{
		return _type.getAttack();
	}

	@Override
	public Integer getDefense()
	{
		return _type.getDefense();
	}

	@Override
	public Integer getStrength()
	{
		return _type.getDefense();
	}

	@Override
	public Integer getAgility()
	{
		return _type.getAgility();
	}

	@Override
	public Integer getSpeed()
	{
		return _type.getSpeed();
	}

	@Override
	public Integer getIntelligence()
	{
		return _type.getIntelligence();
	}

	@Override
	public Integer getActualLife()
	{
		// TODO Auto-generated method stub
		return 100;
	}

	@Override
	public Integer getMaxLife()
	{
		return _type.getMaxLife();
	}

	@Override
	public Integer getActualMana()
	{
		// TODO Auto-generated method stub
		return 100;
	}

	@Override
	public Integer getMaxMana()
	{
		return _type.getMaxMana();
	}

	@Override
	public Integer getResistance()
	{
		return _type.getResistance();
	}

	@Override
	public void setActualLife( Integer pLife )
	{
		// TODO Auto-generated method stub

	}

}
